# Makefile de Servidor

CFLAGS = -Wall -Werror -pedantic -pedantic-errors -O0 -g
CC = g++
OBJ = thread.o MensajeServidor.o Login.o HiloModelo.o NodoAdmin.o NodoCliente.o HiloCliente.o
OBJEXTRN = Button.o Celda.o MiniBar.o GoldenStar.o Tablero.o Partida.o CeldaBase.o CeldaVacia.o JsonLevel.o mensaje.o AceptadorCnx.o ConectorCnx.o Conexion.o Pieza.o Posicion.o

all: server
	
bin: thread.o MensajeServidor.o other

#wqueue.o: wqueue.h
#	$(CC) -c $(CFLAGS) $<
MensajeServidor.o: MensajeServidor.cpp MensajeServidor.h
	$(CC) -c $(CFLAGS) $<
thread.o: thread.cpp thread.h
	$(CC) -c $(CFLAGS) $<
Login.o: Login.cpp Login.h
	$(CC) -c $(CFLAGS) $<
HiloModelo.o: HiloModelo.cpp HiloModelo.h
	$(CC) -c $(CFLAGS) $<
NodoAdmin.o: NodoAdmin.cpp NodoAdmin.h
	$(CC) -c $(CFLAGS) $<
NodoCliente.o: NodoCliente.cpp NodoCliente.h
	$(CC) -c $(CFLAGS) $<
HiloCliente.o: HiloCliente.cpp HiloCliente.h
	$(CC) -c $(CFLAGS) $<	
server: $(OBJ) server.cpp
	# Llamo al make de logica, y de Common
	cd logica/; make bin	# ejecuto el make en la carpeta logica
	cp logica/*.o .	# copio los .o en esta carpeta
	cd ../Common/; make bin	# ejecuto el make en la carpeta common
	cp ../Common/*.o .	# copio los .o en esta carpeta
	g++ $(CFLAGS) $(OBJ) $(OBJEXTRN) server.cpp -o server -lpthread -ljsoncpp -lcrypto

clean:
	cd logica/; make clean;
	cd ../Common/; make clean;
	rm *.o server

PHONY: main bin
